package com.lms.collection.queue;

import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;

/**
 * @Author: 李孟帅
 * @CreateTime: 2020-06-17 06:53
 * @Description:
 */
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue = new ArrayBlockingQueue<>(3);
        //将指定的元素插入到此队列中，如果可以立即执行此操作，而不会违反容量限制， true在成功后返回 IllegalStateException如果当前没有可用空间，则抛出IllegalStateException。
        boolean add = queue.add(1);
        boolean add2 = queue.add(2);
        boolean add3 = queue.add(3);
        //检索，但不删除，这个队列的头。 此方法与peek的不同之处在于，如果此队列为空，它将抛出异常。
        Integer element = queue.element();
        //如果在不违反容量限制的情况下立即执行，则将指定的元素插入到此队列中。 成功为true，失败为false;
        boolean offer = queue.offer(4);
        //检索但不删除此队列的头，如果此队列为空，则返回 null 。
        Integer peek = queue.peek();
        //检索并删除此队列的头，如果此队列为空，则返回 null 。
        Integer poll = queue.poll();
        //检索并删除此队列的头。 方法与poll不同之处在于，如果此队列为空，它将抛出异常。
        Integer remove = queue.remove();
    }
}
